package com.bto.solar.work.dto.lease;

import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.Accessors;

import java.util.List;

/**
 * @author 王小波
 * @description:
 * @date 2023/7/21 11:44
 */
@NoArgsConstructor
@Data
public class PowerSellOlFIleBody {
    @JsonProperty("prjProject")
    private PrjProject prjProject;
    @JsonProperty("prjProjectLeaseItemList")
    private List<PrjProjectLeaseItem> prjProjectLeaseItemList;
    @JsonProperty("financeProjectFileInfoDto")
    private FinanceProjectFileInfoDto financeProjectFileInfoDto;

    @NoArgsConstructor
    @Accessors(chain = true)
    @Data
    public static class PrjProject {
        @JsonProperty("partnersContractNumber")
        private String partnersContractNumber;
    }

    @NoArgsConstructor
    @Accessors(chain = true)
    @Data
    public static class FinanceProjectFileInfoDto {
        @JsonProperty("keyType")
        private String keyType;
        @JsonProperty("businessKey")
        private String businessKey;
        @JsonProperty("fileList")
        private List<FileList> fileList;

        @NoArgsConstructor
        @Accessors(chain = true)
        @Data
        public static class FileList {
            @JsonProperty("fileCode")
            private String fileCode;
            @JsonProperty("fileName")
            private String fileName;
            @JsonProperty("fileAddress")
            private String fileAddress;
        }
    }

    @NoArgsConstructor
    @Accessors(chain = true)
    @Data
    public static class PrjProjectLeaseItem {
        @JsonProperty("partnersLeaseItemId")
        private String partnersLeaseItemId;
        @JsonProperty("productModel")
        private String productModel;
        @JsonProperty("inverterNumber")
        private String inverterNumber;
        @JsonProperty("addressConsistent")
        private String addressConsistent;
        @JsonProperty("electricProvinceCode")
        private String electricProvinceCode;
        @JsonProperty("electricCityCode")
        private String electricCityCode;
        @JsonProperty("electricAreaCode")
        private String electricAreaCode;
        @JsonProperty("electricAddress")
        private String electricAddress;
    }
}
